// 使用导航守卫实现对路由的控制

import router from "@/router/index.js";
import {useAuthStore} from "@/stores/authStore.js";

// 进行路由跳转前，会首先经过 beforeEach()，那么就可以在此时进行校验，控制路由
router.beforeEach(async (to, from, next) => {
	// 获得存储当前认证信息的 Store
	const userStore = useAuthStore()
	// 获得用户 token 信息
	const token = userStore.token;
	// 判断当前用户是否登录
	if (token == null || token == "") {
		// 当前用户尚未登录
		// 判断请求地址是登录或者是注册
		if (to.path == '/login' || to.path == '/register') {
			// 未认证，请求路径是登录或注册则放行
			next()
		} else {
			// 未认证，请求路径是需要认证的则跳转到登录页面
			next({name:"login"})
		}
	} else {
		// 当前用户已经认证
		// 判断用户的请求地址是否还是登录或者注册
		if (to.path == '/login' || to.path == '/register') {
			// 不允许二次登录，跳转到首页面
			next({name:"index"})
		}else {
			// 若不是则放行
			next()
		}
	}
})